﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

using Controller;
using Model;

namespace WCFService
{
    [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
    // [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]
    public class WilkeService : IWilkeService
    {
        Controller.Controller wilkeSystem;
        //private Bruger bruger;
        
        public WilkeService()
        {
            wilkeSystem = new Controller.Controller();
        }

        public Bruger OpretBruger(string navn, string adresse, int postnr,
            string by, Int64 kontonr, int regnr, string mail, bool administrator, int telefonnr, string password)
        {
            return wilkeSystem.OpretBruger(navn, password, administrator, mail, telefonnr, adresse, postnr, by, true, kontonr, regnr);
        }

        public Projekt OpretNyProjekt(string projektnavn, int projektstart, int projektslut)
        {
            return wilkeSystem.OpretNyProjekt(projektnavn, projektstart, projektslut);
        }

        public Timer RegistrerTimer(DateTime timeStart, DateTime timeSlut, DateTime dato, Bruger bruger, Projekt projekt, // ? timeLog,
                     bool timeGodkendelse, bool timeUdbetalt)
        {
            return wilkeSystem.RegistrerTimer(timeStart, timeSlut, dato, bruger, projekt, /*timeLog, */ timeGodkendelse, timeUdbetalt);
        }

        public void OpretKontrakt(int timeLøn, int kontraktType)
        {

        }

        public Projekt[] VisProjekter()
        {
            return wilkeSystem.VisProjekter();
        }

        public Projekt FindProjekt(int projektID)
        {
            return wilkeSystem.FindProjekt(projektID);
        }

        public Bruger[] VisBrugere()
        {
            return wilkeSystem.VisBrugere().OrderBy(i => i.navn).ToArray();
        }

        public Bruger FindBruger(int personID)
        {
            return wilkeSystem.FindBruger(personID);
        }
    }
}
